本书的结构

本书包括六个部分:

导论:

第1~3章给出的是有关C++语言,它所支持的关键性程序设计风格,以及有关C++标准库的综述。

        第1章 致读者
        第2章 C++ 概览
        第3章 标准库概览

第1章是对全书的综述。这里提供了一些有关如何使用C++的建议,以及一些有关C++及其应用的背景性信息。你应该大略地读一读这一章,先注意读那些看起来有意思的内容,在读了本书的其他一些部分之后再回来读一读。

第2章和第3章是有关C++程序设计语言及其标准库的主要概念和特征的综述。这两章的目的是促使你在基础性概念和基本语言特征上用一些时间,在这里展示了利用完整的C++语言可以描述些什么。即使没有其他内容,这两章也会使你确信C++并不(只)是C。

第2章给出了有关C++的一个高层次的认识,其中的讨论集中在那些支持数据抽象、面向对象的程序设计和通用型程序设计的语言特征方面。

第3章介绍了标准库的基本原理和主要功能,这也使我可以在随后的章节里使用标准库,也使你能在练习中利用各种库功能,而不是去直接依靠低级的内部特征。

第一部分:基本功能

第4~9章是有关C++内部类型,以及由它们出发构造程序的基本功能的一个具有教材形式的介绍。

        第4章 类型和声明
        第5章 指针、数组和结构
        第6章 表达式和语句
        第7章 函数
        第8章 名字空间和异常
        第9章 源文件和程序

第一部分描述的是C++的一个子集,它支持传统上在C或Pascal里进行的那种风格的程序设计。这里的内容覆盖了基本类型、表达式、以及C++程序的控制结构。也讨论了由名字空间、源程序文件和异常处理所支持的模块化问题。本书假定你已熟悉在第一部分中用到的那些基本程序设计概念。例如,我将解释C++中表述循环和递归的功能,但却不去花许多时间解释为什么这些概念非常有用。

这一部分描述C++的内部类型以及由它们出发构造程序的基本功能。在这里介绍的是C++的C子集,再加上C++对传统程序设计风格的进一步支持,还要讨论为通过若干逻辑的和物理的部分组合产生C++程序而提供的一些基本功能。

第二部分:抽象机制

第10~15章是有关使用C++做面向对象和通用型程序设计的一个具有教材形式的介绍。

        第10章 类
        第11章 运算符重载
        第12章 派生类
        第13章 模板
        第14章 异常处理
        第15章 类层次结构

第二部分描述C++里定义和使用新类型的功能。具体的和抽象的类(界面)都在这里讨论(第10、12章),还有运算符重载(第11章),多态性,以及类层次结构的使用(第12、15章)。第13章讨论模板,也就是在C++里定义一族类型或函数的机制。这里阐述了提供容器(例如表),以及支持通用型程序设计的那些基本技术。第14章描述异常处理,讨论对错误处理,说明有关容错的策略等。假定你或者是不很熟悉面向对象程序设计和通用型程序设计,或者是能从有关C++怎样支持主要的数据抽象技术的解释中获益。正因如此,我将不仅描述支持这些抽象技术的语言特征,也要解释这些技术本身。第四部分将在这个方向上继续前进。

第三部分:标准库

第16~22章介绍C++的标准库。

        第16章 库组织和容器
        第17章 标准容器
        第18章 算法和函数对象
        第19章 迭代器和分配器
        第20章 串
        第21章 流
        第22章 数值

第三部分描述C++标准库。这里的目标是为如何使用这个库提供一种解释,阐述一般性的设计和编程技术,也说明如何去扩充这个库。标准库提供了容器(如list、vector和map;第16、17章),标准算法(如sort、find和merge;第18、19章),字符串(第20章),输入输出(第21章),以及对数值计算的支持(第22章)。

第四部分:用C++ 做设计

第23~25章讨论设计和软件开发方面的一些论题。

        第23章 开发和设计
        第24章 设计和编程
        第25章 类的作用

第四部分讨论的是在把C++用于大型软件系统的设计和实现时所引出的论题。第23章集中于设计和管理方面,第24章讨论C++程序设计语言和设计问题之间的关系,第25章给出将类应用于设计的一些方法。

附录和索引

附录A~E提供了语言的技术性细节。

        附录A 语法
        附录B 兼容性
        附录C 技术细节
        附录D 现场
        附录E 标准库的异常时安全性

附录A是C++的语法描述,带有少量的标注。

附录B讨论C和C++,以及标准C++(也称为ISO C++或ANSI C++)和在此之前的C++版本之间的关系。

附录C描述一些语言技术实例。

附录D解释标准库中支持国际化的功能。

附录E讨论标准库在异常时安全性方面的保证和要求。

🔚